/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.com.deployment.dao;

import br.com.deployment.daogenerico.DaoGenerico;
import br.com.deployment.entidade.localidade.Cidade;
import br.com.deployment.interfaces.CidadeDaoIn;
import java.util.ArrayList;
import java.util.List;
import javax.ejb.LocalBean;
import javax.ejb.Stateless;
import javax.persistence.Query;

/**
 *
 * @author luciano
 */
@Stateless
@LocalBean
public class CidadeDao extends DaoGenerico<Cidade> implements CidadeDaoIn {

    public CidadeDao() {
        super(Cidade.class);
    }

    public Boolean exist(Cidade cidade) {
        return getEm().contains(cidade);
    }

    public List<Cidade> list(String id) {
        List<Cidade> lista = new ArrayList<Cidade>();
        Query query = getEm().createNativeQuery("Select c.nom_cidade from Cidade c, Estado e where c.cod_estado = e.cod_estado and e.nom_estado like '" + id + "'");
        lista = query.getResultList();
        return lista;
    }

    public List<Cidade> findCidade(Cidade cidade) {
        List<Cidade> lista = new ArrayList<Cidade>();
        String sql = "Select c from Cidade c where lower(c.nom_cidade) like lower(:nome)";
        Query query = getEm().createQuery(sql);

        if (cidade.getNom_cidade() != null) {
            query.setParameter("nome", "%" + cidade.getNom_cidade() + "%");
        }

        lista = query.getResultList();
        return lista;
    }

    public List<Cidade> cidadesCoord() {
        String sql = "Select c from Cidade c where c.geoRef is not empty ";
        Query query = getEm().createQuery(sql);
        return query.getResultList();
    }
}
